home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls085.solintel.Z / tls085.solintel / lib / vtcl / tests / timeout.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  1.5 KB  |  78 lines

  1. # CVS $Id: timeout.tcl,v 1.3 1995/02/03 16:55:27 zibi Exp $
  2. global t
  3. set t 0
  4.  
  5. source tools.tcl
  6.  
  7. proc Exit {cbs} {
  8.     VtClose
  9. }
  10.  
  11. proc timeout {label cbs} {
  12.     global t
  13.  
  14.     set id [VtAddTimeOut -callback "timeout $label" -interval 500]
  15.     VtSetValues $label -label "Time out called $t times\nTimer ID is $cbs" \
  16.     -userData $id
  17.     incr t
  18. }
  19.  
  20. proc Start {cbs} {
  21.     set id [GetDialogKeyCBS $cbs id]
  22.     set label [GetDialogKeyCBS $cbs label]
  23.  
  24.     if {$id != ""} {return}
  25.  
  26.     set id [VtAddTimeOut -callback "timeout $label" -interval 500]
  27.  
  28.     SetDialogKeyCBS $cbs id $id
  29.  
  30.     set but [GetDialogKeyCBS $cbs Stop]
  31.     VtSetSensitive $but 1
  32.  
  33.     set but [GetDialogKeyCBS $cbs Start]
  34.     VtSetSensitive $but 0
  35. }
  36.  
  37. proc Stop {cbs} {
  38.     set id [GetDialogKeyCBS $cbs id]
  39.  
  40.     VtRemoveTimeOut $id
  41.  
  42.     SetDialogKeyCBS $cbs id ""
  43.  
  44.     set but [GetDialogKeyCBS $cbs Stop]
  45.     VtSetSensitive $but 0
  46.  
  47.     set but [GetDialogKeyCBS $cbs Start]
  48.     VtSetSensitive $but 1
  49. }
  50.  
  51.  
  52. set ap [VtOpen TimeOut]
  53.  
  54. set dlog [VtFormDialog $ap.dlg ]
  55.  
  56. set lab [VtLabel $dlog.lab -label "Waiting for start...."]
  57.  
  58. set sep [VtSeparator $dlog.sep -leftSide FORM -rightSide FORM]
  59.  
  60. set rc [VtRowColumn $dlog.rc -rightSide FORM -leftSide FORM -horizontal]
  61.  
  62. foreach b {Start Stop Exit} {
  63.     set but [VtPushButton $rc.$b -label $b -callback $b]
  64.     SetDialogKey $dlog $b $but
  65. }
  66.  
  67. SetDialogKey $dlog label $lab
  68. SetDialogKey $dlog id ""
  69.  
  70. # Get the Stop button and desensitize it
  71. set but [GetDialogKey $dlog Stop]
  72. VtSetSensitive $but 0
  73.  
  74. VtShow $dlog
  75.  
  76.  
  77. VtMainLoop
  78.